// Copyright     :  Copyright (C) 2018, Hisilicon Technologies Co. Ltd.
// File name     :  axi_monitor_1_c_union_define.h
// Project line  :  Platform And Key Technologies Development
// Department    :  CAD Development Department
// Version       :  1.0
// Date          :  2013/3/10
// Description   :  The description of xxx project
// Others        :  Generated automatically by nManager V4.2
// ******************************************************************************

#ifndef __AXI_MONITOR_1_C_UNION_DEFINE_H__
#define __AXI_MONITOR_1_C_UNION_DEFINE_H__

/* Define the union U_MON_ENABLE */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_0     : 31  ; /* [31:1] */
        unsigned int    sample_en : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_ENABLE;

/* Define the union U_MON_W_COMPPARA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_1          : 5  ; /* [31:27] */
        unsigned int    w_compara_size : 3  ; /* [26:24] */
        unsigned int    rsv_2          : 4  ; /* [23:20] */
        unsigned int    w_compara_len  : 4  ; /* [19:16] */
        unsigned int    rsv_3          : 4  ; /* [15:12] */
        unsigned int    w_compara_id   : 12  ; /* [11:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_W_COMPPARA;

/* Define the union U_MON_W_COMPPARAEN */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_4             : 27  ; /* [31:5] */
        unsigned int    w_interleaving_en : 1  ; /* [4] */
        unsigned int    all_wstrb_1_en    : 1  ; /* [3] */
        unsigned int    w_unalign_en      : 1  ; /* [2] */
        unsigned int    w_size_en         : 1  ; /* [1] */
        unsigned int    w_len_en          : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_W_COMPPARAEN;

/* Define the union U_MON_W_IDMASK */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_5    : 20  ; /* [31:12] */
        unsigned int    w_idmask : 12  ; /* [11:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_W_IDMASK;

/* Define the union U_MON_R_COMPPARA */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_6          : 5  ; /* [31:27] */
        unsigned int    r_compara_size : 3  ; /* [26:24] */
        unsigned int    rsv_7          : 4  ; /* [23:20] */
        unsigned int    r_compara_len  : 4  ; /* [19:16] */
        unsigned int    rsv_8          : 4  ; /* [15:12] */
        unsigned int    r_compara_id   : 12  ; /* [11:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_R_COMPPARA;

/* Define the union U_MON_R_COMPPARAEN */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_9             : 27  ; /* [31:5] */
        unsigned int    r_interleaving_en : 1  ; /* [4] */
        unsigned int    rsv_10            : 1  ; /* [3] */
        unsigned int    r_unalign_en      : 1  ; /* [2] */
        unsigned int    r_size_en         : 1  ; /* [1] */
        unsigned int    r_len_en          : 1  ; /* [0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_R_COMPPARAEN;

/* Define the union U_MON_R_IDMASK */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    rsv_11   : 20  ; /* [31:12] */
        unsigned int    r_idmask : 12  ; /* [11:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_R_IDMASK;

/* Define the union U_START_ADDR_LOW */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_addr_base_low : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_START_ADDR_LOW;

/* Define the union U_START_ADDR_HIGH */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_addr_base_high : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_START_ADDR_HIGH;

/* Define the union U_END_ADDR_LOW */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_addr_end_low : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_END_ADDR_LOW;

/* Define the union U_END_ADDR_HIGH */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_addr_end_high : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_END_ADDR_HIGH;

/* Define the union U_MON_W_ADDR_L */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_match_addr_l : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_W_ADDR_L;

/* Define the union U_MON_AW_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    aw_match_cnt : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_AW_CNT;

/* Define the union U_MON_W_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_match_cnt : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_W_CNT;

/* Define the union U_MON_R_ADDR_L */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    r_match_addr_l : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_R_ADDR_L;

/* Define the union U_MON_AR_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ar_match_cnt : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_AR_CNT;

/* Define the union U_MON_R_CNT */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    r_match_cnt : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_R_CNT;

/* Define the union U_MON_W_ADDR_H */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    w_match_addr_h : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_W_ADDR_H;

/* Define the union U_MON_R_ADDR_H */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    r_match_addr_h : 32  ; /* [31:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MON_R_ADDR_H;


//==============================================================================
/* Define the global struct */
typedef struct
{
    volatile U_MON_ENABLE       MON_ENABLE       ; /* 0 */
    volatile U_MON_W_COMPPARA   MON_W_COMPPARA   ; /* 4 */
    volatile U_MON_W_COMPPARAEN MON_W_COMPPARAEN ; /* 8 */
    volatile U_MON_W_IDMASK     MON_W_IDMASK     ; /* C */
    volatile U_MON_R_COMPPARA   MON_R_COMPPARA   ; /* 10 */
    volatile U_MON_R_COMPPARAEN MON_R_COMPPARAEN ; /* 14 */
    volatile U_MON_R_IDMASK     MON_R_IDMASK     ; /* 18 */
    volatile U_START_ADDR_LOW   START_ADDR_LOW   ; /* 20 */
    volatile U_START_ADDR_HIGH  START_ADDR_HIGH  ; /* 24 */
    volatile U_END_ADDR_LOW     END_ADDR_LOW     ; /* 28 */
    volatile U_END_ADDR_HIGH    END_ADDR_HIGH    ; /* 2C */
    volatile U_MON_W_ADDR_L     MON_W_ADDR_L     ; /* 40 */
    volatile U_MON_AW_CNT       MON_AW_CNT       ; /* 44 */
    volatile U_MON_W_CNT        MON_W_CNT        ; /* 48 */
    volatile U_MON_R_ADDR_L     MON_R_ADDR_L     ; /* 4C */
    volatile U_MON_AR_CNT       MON_AR_CNT       ; /* 50 */
    volatile U_MON_R_CNT        MON_R_CNT        ; /* 54 */
    volatile U_MON_W_ADDR_H     MON_W_ADDR_H     ; /* 58 */
    volatile U_MON_R_ADDR_H     MON_R_ADDR_H     ; /* 5C */

} S_axi_monitor_1_REGS_TYPE;

/* Declare the struct pointor of the module axi_monitor_1 */
extern volatile S_axi_monitor_1_REGS_TYPE *gopaxi_monitor_1AllReg;

/* Declare the functions that set the member value */
int iSetMON_ENABLE_sample_en(unsigned int usample_en);
int iSetMON_W_COMPPARA_w_compara_size(unsigned int uw_compara_size);
int iSetMON_W_COMPPARA_w_compara_len(unsigned int uw_compara_len);
int iSetMON_W_COMPPARA_w_compara_id(unsigned int uw_compara_id);
int iSetMON_W_COMPPARAEN_w_interleaving_en(unsigned int uw_interleaving_en);
int iSetMON_W_COMPPARAEN_all_wstrb_1_en(unsigned int uall_wstrb_1_en);
int iSetMON_W_COMPPARAEN_w_unalign_en(unsigned int uw_unalign_en);
int iSetMON_W_COMPPARAEN_w_size_en(unsigned int uw_size_en);
int iSetMON_W_COMPPARAEN_w_len_en(unsigned int uw_len_en);
int iSetMON_W_IDMASK_w_idmask(unsigned int uw_idmask);
int iSetMON_R_COMPPARA_r_compara_size(unsigned int ur_compara_size);
int iSetMON_R_COMPPARA_r_compara_len(unsigned int ur_compara_len);
int iSetMON_R_COMPPARA_r_compara_id(unsigned int ur_compara_id);
int iSetMON_R_COMPPARAEN_r_interleaving_en(unsigned int ur_interleaving_en);
int iSetMON_R_COMPPARAEN_r_unalign_en(unsigned int ur_unalign_en);
int iSetMON_R_COMPPARAEN_r_size_en(unsigned int ur_size_en);
int iSetMON_R_COMPPARAEN_r_len_en(unsigned int ur_len_en);
int iSetMON_R_IDMASK_r_idmask(unsigned int ur_idmask);
int iSetSTART_ADDR_LOW_w_addr_base_low(unsigned int uw_addr_base_low);
int iSetSTART_ADDR_HIGH_w_addr_base_high(unsigned int uw_addr_base_high);
int iSetEND_ADDR_LOW_w_addr_end_low(unsigned int uw_addr_end_low);
int iSetEND_ADDR_HIGH_w_addr_end_high(unsigned int uw_addr_end_high);
int iSetMON_W_ADDR_L_w_match_addr_l(unsigned int uw_match_addr_l);
int iSetMON_AW_CNT_aw_match_cnt(unsigned int uaw_match_cnt);
int iSetMON_W_CNT_w_match_cnt(unsigned int uw_match_cnt);
int iSetMON_R_ADDR_L_r_match_addr_l(unsigned int ur_match_addr_l);
int iSetMON_AR_CNT_ar_match_cnt(unsigned int uar_match_cnt);
int iSetMON_R_CNT_r_match_cnt(unsigned int ur_match_cnt);
int iSetMON_W_ADDR_H_w_match_addr_h(unsigned int uw_match_addr_h);
int iSetMON_R_ADDR_H_r_match_addr_h(unsigned int ur_match_addr_h);

#endif // __AXI_MONITOR_1_C_UNION_DEFINE_H__
